package com.yun.zf.system.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yun.zf.common.admin.model.activity.CouponAddMo;
import com.yun.zf.common.app.domain.SysCoupon;
import com.yun.zf.common.app.dto.center.CouponListDto;
import com.yun.zf.common.mapstruct.admin.ActivityMapper;
import com.yun.zf.system.mapper.SysCouponMapper;
import com.yun.zf.system.service.SysCouponService;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 优惠券表 服务实现类
 * </p>
 *
 * @author cj
 * @since 2021-05-31
 */
@Service
public class SysCouponServiceImpl extends ServiceImpl<SysCouponMapper, SysCoupon> implements SysCouponService {

    @Override
    public int addCoupon(CouponAddMo couponAddMo) {
        SysCoupon coupon = ActivityMapper.INSTANCE.addCoupon(couponAddMo);
        coupon.setCreateTime(new Date());
        return baseMapper.insert(coupon);
    }

    /**
     * @param type
     * @return
     */
    @Override
    public SysCoupon getCouponByType(int type) {
        QueryWrapper<SysCoupon> couponQueryWrapper = new QueryWrapper<>();
        couponQueryWrapper.lambda().eq(SysCoupon::getType, type).orderByDesc(SysCoupon::getModifiedTime);
        List<SysCoupon> list = baseMapper.selectList(couponQueryWrapper);
        return list.size() > 0 ? list.get(0) : null;
    }

    @Override
    public List<CouponListDto> getCouponList(String activityId) {

        return baseMapper.getCouponList(activityId);
    }

    @Override
    public SysCoupon getCoupon(Long id) {
        QueryWrapper<SysCoupon> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(SysCoupon::getStatus,1).eq(SysCoupon::getId,id);
      return   baseMapper.selectOne(wrapper);
    }
}
